超详细的k8s对接ceph RBD存储 |
您所在的位置:网站首页 › k8s ceph存储 › 超详细的k8s对接ceph RBD存储 |
前期准备
对接方式
有两种方式可以使用k8s对接ceph 使用第三方的rbd provisioner,但是由于官方已经不再进行维护因此随着版本越来越高,其对应的rbd provisioner内置的ceph-common版本已经跟不上ceph的版本了,现在其内置的ceph-common版本是m版,如果集群是m版可以考虑使用使用官方的ceph csi,一直在更新,推荐使用,本文使用的就是该种方法 ceph-csi版本选择一定要记得k8s的版本与ceph-csi对应!否则会有很多bug 现阶段对应ceph csi与k8s版本对应如下: 对于ceph集群最好是N版以及更高的版本 选择对应版本之后,仓库版本也要进行选择,比如我此次选择的是3.5.1版本,那么仓库版本需要选择3.5版本 不要git clone代码,我们用到的就是deploy目录下的内容 国内的推荐: 搭建环境(以RBD为例)将ceph-csi/deploy/rbd/kubernetes/下的所有yaml文件拷贝到本地 创建csi-config-map.yaml clusterID就是集群ID,ceph -s即可获得 --- apiVersion: v1 kind: ConfigMap data: config.json: |- [ { "clusterID": "2a5306a8-885f-40b7-91f6-ec9410b53d3c", "monitors": [ "10.20.20.103:6789", "10.20.20.104:6789", "10.20.20.105:6789" ] } ] metadata: name: ceph-csi-config创建csi-kms-config-map.yaml,也可以不创建,但是需要将csi-rbdplugin-provisioner.yaml和csi-rbdplugin.yaml中kms有关内容注释掉 --- apiVersion: v1 kind: ConfigMap data: config.json: |- {} metadata: name: ceph-csi-encryption-kms-config创建ceph-config-map.yaml ceph.conf就是复制ceph集群的配置文件,也就是/ect/ceph/ceph.conf文件中的对应内容 --- apiVersion: v1 kind: ConfigMap data: ceph.conf: | [global] fsid = 2a5306a8-885f-40b7-91f6-ec9410b53d3c public_network = 10.20.20.0/24 mon_initial_members = server103 mon_host = 10.20.20.103 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx # keyring is a required key and its value should be empty keyring: | metadata: name: ceph-config创建csi-rbd-secret.yaml --- apiVersion: v1 kind: Secret metadata: name: csi-rbd-secret namespace: default stringData: userID: kubernetes userKey: AQA18kdi+4iYHhAAbRmfkKJ/XvB1PdYTTBEdwA== encryptionPassphrase: test_passphrase其中的userID与userKey通过以下方式获取 创建存储池 ceph osd pool create k8s 128 128 rbd pool init k8s创建并授权认证用户 ceph auth get-or-create client.kubernetes mon 'profile rbd' osd 'profile rbd pool=k8s' mgr 'profile rbd pool=k8s'这里的kubernetes就是userID,对应的key为userKey apply以上的所有文件 一共如下: ceph-csi/deploy/rbd/kubernetes/ (github上的文件)csi-config-map.yamlcsi-kms-config-map.yaml (可有可无)ceph-config-map.yamlcsi-rbd-secret.yaml创建storageclass --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: csi-rbd-sc provisioner: rbd.csi.ceph.com parameters: clusterID: 2a5306a8-885f-40b7-91f6-ec9410b53d3c pool: k8s #之前创建pool的名称 imageFeatures: layering csi.storage.k8s.io/provisioner-secret-name: csi-rbd-secret csi.storage.k8s.io/provisioner-secret-namespace: default csi.storage.k8s.io/controller-expand-secret-name: csi-rbd-secret csi.storage.k8s.io/controller-expand-secret-namespace: default csi.storage.k8s.io/node-stage-secret-name: csi-rbd-secret csi.storage.k8s.io/node-stage-secret-namespace: default csi.storage.k8s.io/fstype: ext4 reclaimPolicy: Delete allowVolumeExpansion: true mountOptions: - discard创建pvc --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: rbd-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: csi-rbd-sc |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |